package social.server.historicActivity;


public class HistoricManager {

	/**
	 * Adiciona um objeto "friendAdditionToHistoric" repressentando uma
	 * atividade de adicao de amigo no historico do usuario.
	 * 
	 * @param userLogin
	 *            Login em questao.
	 * @param friendName
	 *            Nome do amigo que foi adicionado.
	 * @throws Exception
	 *             Lanca exception ao usar outros metodos.
	 */
	public static void friendAdditionToHistoric(String userLogin,
			String friendName) throws Exception {
		String userName = social.server.main.System.getInstance().getUser(userLogin).getName();

		social.server.main.System.getInstance()
				.getUser(userLogin)
				.addHistoricActivity(
						new FriendAdditionActivity(userName, friendName));
	}

	/**
	 * Adiciona um objeto "registerItemToHistoric" repressentando uma atividade
	 * de registro de item no historico do usuario.
	 * 
	 * @param userLogin
	 *            Login em questao.
	 * @param itemName
	 *            Nome do item registrado.
	 * @throws Exception
	 *             Lanca exception ao usar outros metodos.
	 */
	public static void registerItemToHistoric(String userLogin, String itemName)
			throws Exception {
		String userName = social.server.main.System.getInstance().getUser(userLogin).getName();

		social.server.main.System.getInstance()
				.getUser(userLogin)
				.addHistoricActivity(
						new RegisterItemActivity(userName, itemName));
	}

	/**
	 * Adiciona um objeto "loanOnGoingToHistoric" repressentando uma atividade
	 * de emprestimo em andamento no historico do usuario.
	 * 
	 * @param userLogin
	 *            Login em questao.
	 * @param itemName
	 *            Nome do item que foi emprestado.
	 * @param benefitedName
	 *            Nome do beneficiado.
	 * @throws Exception
	 *             Lanca exception ao usar outros metodos.
	 */
	public static void loanOnGoingToHistoric(String userLogin, String itemName,
			String benefitedName) throws Exception {
		String userName = social.server.main.System.getInstance().getUser(userLogin).getName();

		social.server.main.System.getInstance()
				.getUser(userLogin)
				.addHistoricActivity(
						new LoanOnGoingActivity(userName, itemName,
								benefitedName));
	}

	/**
	 * Adiciona um objeto "interestItemToHistoric" repressentando uma atividade
	 * de declaracao de interesse em um item no historico do usuario.
	 * 
	 * @param userLogin
	 *            Login em questao.
	 * @param itemName
	 *            Nome do item em questao.
	 * @param itemOwnerName
	 *            Nome do dono do item
	 * @throws Exception
	 *             Lanca exception ao usar outros metodos.
	 */
	public static void interestItemToHistoric(String userLogin,
			String itemName, String itemOwnerName) throws Exception {
		String userName = social.server.main.System.getInstance().getUser(userLogin).getName();

		social.server.main.System.getInstance()
				.getUser(userLogin)
				.addHistoricActivity(
						new InterestItemActivity(userName, itemName,
								itemOwnerName));
	}

	/**
	 * Adiciona um objeto "loanEndToHistoric" repressentando uma atividade de
	 * fim de um emprestimo de um item no historico do usuario.
	 * 
	 * @param userLogin
	 *            Login em questao.
	 * @param itemName
	 *            Nome do tem em questao
	 * @throws Exception
	 *             Lanca exception ao usar outros metodos.
	 */
	public static void loanEndToHistoric(String userLogin, String itemName)
			throws Exception {
		String userName = social.server.main.System.getInstance().getUser(userLogin).getName();

		social.server.main.System.getInstance().getUser(userLogin)
				.addHistoricActivity(new LoanEndActivity(userName, itemName));
	}
}
